package com.tbit.uqbike.client.service;

import com.tbit.common.enums.FeeTypeEnum;
import com.tbit.uqbike.client.pojo.AdAccountFee;
import com.tbit.uqbike.client.pojo.Machine;
import com.tbit.uqbike.client.pojo.newEntity.TimeFee;
import com.tbit.uqbike.client.pojo.vo.FeeCommon;

import java.util.List;
import java.util.Map;

/**
 * @Author: chen
 * @Description:
 * @Date: 创建于 17:19 2020/1/10
 */
public interface AdAccountFeeService {
    /**
     * 根据账户id查询
     *
     * @param accountId
     * @return
     */
    AdAccountFee getByAccountId(Integer accountId, Integer machineId);

    /**
     * 获取分时段计费数据
     * @param accountId 区域id
     * @param hour 小时
     * @param attachId 附加id
     * @return
     */
    TimeFee getByType(Integer accountId, Integer hour,Integer attachId,Integer type);

    /**
     * 获取分时段计费数据
     * @param accountId 区域id
     * @param machineId 设备id
     * @param startTime 开始时间
     * @return
     */
    AdAccountFee getFee(Integer accountId, Integer machineId,String startTime);

    AdAccountFee getVipFee(Integer accountId, String startTime,Integer attachId);

    /**
     * 获取所有分时段计费
     * @param machine 是吧信息
     * @param userId 用户id
     * @return
     */
    List<FeeCommon> getTimeFeeByAccountId(Machine machine, Integer userId);

    /**
     * 获取分时计费
     * @param accountId 区域id
     * @param type 计费类型 0 区域计费、1 车辆计费、2 会员卡计费
     * @return List<TimeFee>
     */
    List<TimeFee> getTimeFee(Integer accountId, Integer type, Integer attachId);

    /**
     * 查询区域现在的计费模式  普通计费 ， 分时计费 ， 假日计费
     * @param accountId
     * @return
     */
    FeeTypeEnum queryFeeType(Integer accountId);
}
